1 module derelict.sdl2.gfx.imagefilter;
2 
3 import derelict.sdl2.sdl;
4 
5 extern(C) @nogc nothrow
6 {
7     // MMX image filters
8     alias da_SDL_imageFilterAbsDiff = int function(ubyte *Src1, ubyte *Src2, ubyte *Dest, uint length);
9     alias da_SDL_imageFilterAdd = int function(ubyte *Src1, ubyte *Src2, ubyte *Dest, uint length);
10     alias da_SDL_imageFilterAddByte = int function(ubyte *Src1, ubyte *Dest, uint length, ubyte C);
11     alias da_SDL_imageFilterAddByteToHalf = int function(ubyte *Src1, ubyte *Dest, uint length, ubyte C);
12     alias da_SDL_imageFilterAddUint = int function(ubyte *Src1, ubyte *Dest, uint length, uint C);
13     alias da_SDL_imageFilterBinarizeUsingThreshold = int function(ubyte *Src1, ubyte *Dest, uint length, ubyte T);
14     alias da_SDL_imageFilterBitAnd = int function(ubyte *Src1, ubyte *Src2, ubyte *Dest, uint length);
15     alias da_SDL_imageFilterBitNegation = int function(ubyte *Src1, ubyte *Dest, uint length);
16     alias da_SDL_imageFilterBitOr = int function(ubyte *Src1, ubyte *Src2, ubyte *Dest, uint length);
17     alias da_SDL_imageFilterClipToRange = int function(ubyte *Src1, ubyte *Dest, uint length, ubyte Tmin, ubyte Tmax);
18     alias da_SDL_imageFilterDiv = int function(ubyte *Src1, ubyte *Src2, ubyte *Dest, uint length);
19     alias da_SDL_imageFilterMMXdetect = int function();
20     alias da_SDL_imageFilterMean = int function(ubyte *Src1, ubyte *Src2, ubyte *Dest, uint length);
21     alias da_SDL_imageFilterMult = int function(ubyte *Src1, ubyte *Src2, ubyte *Dest, uint length);
22     alias da_SDL_imageFilterMultByByte = int function(ubyte *Src1, ubyte *Dest, uint length, ubyte C);
23     alias da_SDL_imageFilterMultDivby2 = int function(ubyte *Src1, ubyte *Src2, ubyte *Dest, uint length);
24     alias da_SDL_imageFilterMultDivby4 = int function(ubyte *Src1, ubyte *Src2, ubyte *Dest, uint length);
25     alias da_SDL_imageFilterMultNor = int function(ubyte *Src1, ubyte *Src2, ubyte *Dest, uint length);
26     alias da_SDL_imageFilterNormalizeLinear = int function(ubyte *Src, ubyte *Dest, uint length, int Cmin, int Cmax, int Nmin, int Nmax);
27     alias da_SDL_imageFilterShiftLeft = int function(ubyte *Src1, ubyte *Dest, uint length, ubyte N);
28     alias da_SDL_imageFilterShiftLeftByte = int function(ubyte *Src1, ubyte *Dest, uint length, ubyte N);
29     alias da_SDL_imageFilterShiftLeftUint = int function(ubyte *Src1, ubyte *Dest, uint length, ubyte N);
30     alias da_SDL_imageFilterShiftRight = int function(ubyte *Src1, ubyte *Dest, uint length, ubyte N);
31     alias da_SDL_imageFilterShiftRightAndMultByByte = int function(ubyte *Src1, ubyte *Dest, uint length, ubyte N, ubyte C);
32     alias da_SDL_imageFilterShiftRightUint = int function(ubyte *Src1, ubyte *Dest, uint length, ubyte N);
33     alias da_SDL_imageFilterSub = int function(ubyte *Src1, ubyte *Src2, ubyte *Dest, uint length);
34     alias da_SDL_imageFilterSubByte = int function(ubyte *Src1, ubyte *Dest, uint length, ubyte C);
35     alias da_SDL_imageFilterSubUint = int function(ubyte *Src1, ubyte *Dest, uint length, uint C);
36     alias da_SDL_imageFilterMMXoff = void function();
37     alias da_SDL_imageFilterMMXon = void function();
38 }
39 
40 __gshared
41 {
42     // MMX image filters
43     da_SDL_imageFilterAbsDiff SDL_imageFilterAbsDiff;
44     da_SDL_imageFilterAdd SDL_imageFilterAdd;
45     da_SDL_imageFilterAddByte SDL_imageFilterAddByte;
46     da_SDL_imageFilterAddByteToHalf SDL_imageFilterAddByteToHalf;
47     da_SDL_imageFilterAddUint SDL_imageFilterAddUint;
48     da_SDL_imageFilterBinarizeUsingThreshold SDL_imageFilterBinarizeUsingThreshold;
49     da_SDL_imageFilterBitAnd SDL_imageFilterBitAnd;
50     da_SDL_imageFilterBitNegation SDL_imageFilterBitNegation;
51     da_SDL_imageFilterBitOr SDL_imageFilterBitOr;
52     da_SDL_imageFilterClipToRange SDL_imageFilterClipToRange;
53     da_SDL_imageFilterDiv SDL_imageFilterDiv;
54     da_SDL_imageFilterMMXdetect SDL_imageFilterMMXdetect;
55     da_SDL_imageFilterMMXoff SDL_imageFilterMMXoff;
56     da_SDL_imageFilterMMXon SDL_imageFilterMMXon;
57     da_SDL_imageFilterMean SDL_imageFilterMean;
58     da_SDL_imageFilterMult SDL_imageFilterMult;
59     da_SDL_imageFilterMultByByte SDL_imageFilterMultByByte;
60     da_SDL_imageFilterMultDivby2 SDL_imageFilterMultDivby2;
61     da_SDL_imageFilterMultDivby4 SDL_imageFilterMultDivby4;
62     da_SDL_imageFilterMultNor SDL_imageFilterMultNor;
63     da_SDL_imageFilterNormalizeLinear SDL_imageFilterNormalizeLinear;
64     da_SDL_imageFilterShiftLeft SDL_imageFilterShiftLeft;
65     da_SDL_imageFilterShiftLeftByte SDL_imageFilterShiftLeftByte;
66     da_SDL_imageFilterShiftLeftUint SDL_imageFilterShiftLeftUint;
67     da_SDL_imageFilterShiftRight SDL_imageFilterShiftRight;
68     da_SDL_imageFilterShiftRightAndMultByByte SDL_imageFilterShiftRightAndMultByByte;
69     da_SDL_imageFilterShiftRightUint SDL_imageFilterShiftRightUint;
70     da_SDL_imageFilterSub SDL_imageFilterSub;
71     da_SDL_imageFilterSubByte SDL_imageFilterSubByte;
72     da_SDL_imageFilterSubUint SDL_imageFilterSubUint;
73 }
74